package com.sikaryofficial.workbench.domain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 预子订单对象 order_item_t
 *
 * @author wuweihong
 * @date 2024-09-23
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
@TableName("order_item_t")
public class OrderItem implements Serializable
{
    private static final long serialVersionUID = 1L;
    /**
     * 子订单ID
     */
    @TableId(type = IdType.ASSIGN_ID, value = "order_item_id")
    private Long orderItemId;
    /**
     * 订单ID
     */
    private Long orderHeaderId;
    /**
     * 子订单编号【品牌代号_年份_月份_订单序号】
     */
    private String orderItemNo;
    /**
     * 订单行状态：1-Order-Placement,2-Confirmation,3-Product Preparation,4-Production Completed
     */
    private Integer itemStatus;
    /**
     * 商品ID
     */
    private Long goodsId;
    /**
     * 商品编号
     */
    private String goodsCode;
    /**
     * 数量(烟杆)
     */
    private Integer quantity;
    /**
     * 单价,不含税
     */
    private BigDecimal unitPrice;
    /**
     * 总价,不含税
     */
    private BigDecimal totalPrice;
    /**
     * 币种
     */
    private String currency;
    /**
     * 品牌编码
     */
    private String brandNo;
    /**
     * 口味
     */
    private String tasteName;
    /**
     * 型号
     */
    private String model;
    /**
     * 款式: style:disposable 一次性,cartridge 弹药筒,other 其他
     */
    private String style;
    /**
     * 产品名称
     */
    private String goodsName;
    /**
     * 产品编码
     */
    private String productNo;
    /**
     * 订单定制id
     */
    private Long orderCustomizedId;
    /**
     * 租户号
     */
    private Integer tenantId;
    /**
     * 乐观锁
     */
    private Integer revision;
    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createdBy;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;
    /**
     * 更新人
     */
    @TableField(fill = FieldFill.UPDATE)
    private Long updatedBy;
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updatedTime;
    /**
     * 删除版本：默认为0；删除则赋值当前记录主键ID
     */
    private Long deletedVersion;

}
